##########################################################################################
#cmd settings
###########################################################################################
export CP:=cp -ravf
export MKDIR:=mkdir -p
export RM:=rm -rf 
export ECHO:=echo -e 
#[Shell color](https://blog.csdn.net/e5pool/article/details/126804442)
export RED_COLOR:=\033[31m
export GREEN_COLOR:=\033[32m
export RESET_COLOR:=\033[0m

###########################################################################################
#paths settings
###########################################################################################
CUR_PATH:=$(shell pwd)
VIMRC_PATH:=$(HOME)/.vim
SWAP_PATH:=$(VIMRC_PATH)/swap

NEOVIM_PATH:=$(HOME)/.config/nvim

###########################################################################################
#files settings
###########################################################################################
SRC_VIMRC_FILE:=$(CUR_PATH)/.vimrc
DST_VIMRC_FILE:=$(HOME)/.vimrc
SRC_TMUX_CFG_FILE:=$(CUR_PATH)/.tmux.conf
DST_TMUX_CFG_FILE:=$(HOME)/.tmux.conf

NEOVIM_RCFILE:=$(NEOVIM_PATH)/init.vim

########################################################################
#targets
########################################################################
.PHONY:all prepare install config cfg_files clean

all:prepare install config cfg_files


prepare:
	@$(MKDIR) $(VIMRC_PATH)
	@$(MKDIR) $(SWAP_PATH)

install:
	-@sudo apt install -y vim 
	-@sudo apt install -y build-essential
	-@sudo apt install -y ack-grep
	-@sudo apt install -y universal-ctags
	-@sudo apt install -y tmux
	-@sudo apt install -y python3-pip
	-@sudo apt install -y cscope	
	-@python3 -m pip install powerline-status

config:
	git config --global merge.tool vimdiff
	git config --global merge.conflictStyle diff3
	git config --global mergetool.prompt true

cfg_files:
	@$(CP) $(SRC_VIMRC_FILE) $(DST_VIMRC_FILE)
	@$(CP) $(SRC_TMUX_CFG_FILE) $(DST_TMUX_CFG_FILE)
ifneq ($(NEOVIM_PATH), $(wildcard $(NEOVIM_PATH)))
	-@ln -s $(VIMRC_PATH) $(NEOVIM_PATH)
endif
ifneq ($(NEOVIM_RCFILE), $(wildcard $(NEOVIM_RCFILE)))
	-@ln -s $(DST_VIMRC_FILE) $(NEOVIM_RCFILE)
endif

clean:
	-@$(RM) $(DST_VIMRC_FILE)
	-@$(RM) $(DST_TMUX_CFG_FILE)
	-@$(RM) $(VIMRC_PATH)
	-@$(RM) $(NEOVIM_RCFILE)
	-@$(RM) $(NEOVIM_PATH)
